package main

import "fmt"

//1函数内部声明/定义的变量叫局部变量，作用域仅限于函数内部
//2函数外部声明/定义的变量叫全局变量，作用域在整个包都有效，如果其首字母为大写，则作用域在整个程序有效
//3如果变量是在一个代码块，比如for/if中，那么这个变量的作用域就在该代码块
var age int = 50          //全局变量
var Name string = "jack~" //全局变量
/*
Name:="tom"
错误，因为Name:="tom"等价var Name string,Name="tom"
赋值语句不能在函数体外，所以错
*/
func test() {
	//age和Name的作用域就只有test函数内部
	age := 10
	Name := "tom~"
	fmt.Println("age~=", age)
	fmt.Println("Name~=", Name)
}
func main() {
	fmt.Println("age=", age)   //50
	fmt.Println("Name=", Name) //jack~
	test()

	//i只在这个代码块有效
	for i := 0; i <= 10; i++ {
		fmt.Println("i=", i)
	}
}
